package repository;

import java.util.List;
import java.util.Map;

/**
 * @ClassName: CharacterMaterialMapper
 * @Description:
 * @Author: cc
 */
public interface CharacterMaterialMapper {

    /**
     * @param characterId 角色ID
     * @param itemId      物品ID
     * @param type        类型
     * @Author cc
     * @Description 保存单个数据
     */
    void saveOne(int characterId, int itemId, int count, int type);


    /**
     * @param batch 数据集合
     * @Author cc
     * @Description 批量保存数据
     */
    void saveBatch(List<Map<String, Integer>> batch);

    /**
     * @param count       数量
     * @param itemId      物品ID
     * @param characterId 角色ID
     * @Author cc
     * @Description 根据角色ID, 道具ID修改数量
     */
    void updateCount(int count, int itemId, int characterId) throws Exception;

    /**
     * @param characterId 角色ID
     * @Author cc
     * @Description 根据角色ID删除批量数据
     */
    void deleteBatch(int characterId);

    /**
     * @param characterId 角色ID
     * @param itemId      物品ID
     * @Author cc
     * @Description 根据角色ID, 物品ID删除单个数据
     */
    void deleteOne(int characterId, int itemId);

    /**
     * @param characterId 角色ID
     * @param itemId      物品ID
     * @Author cc
     * @Description 根据角色ID, 物品ID查询单个数据
     */
    Map<String, Object> queryByUserOne(int characterId, int itemId) throws Exception;

    /**
     * @param characterId 角色ID
     * @Author cc
     * @Description 根据角色id查询数据集合
     */
    List<Map<String, Object>> queryByUserList(int characterId) throws Exception;

    /**
     * @Author cc
     * @Description 查询数据集合
     */
    List<Map<String, Object>> queryList() throws Exception;
}
